/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package core;

import core.util.COREServiceRegistry;
import java.io.File;
import org.apache.log4j.Logger;

/**
 *
 * @author Vincenzo Merlo, Scuderi Giovanni Luca, Paolo Giuffrida
 *
 *
 */

/**
 * CORE è la classe di inizializzazione - configurazione - istanziazione dei componenti principali della piattaforma.
 *
 * La classe CORE è la classe principale che contiene tutti i principali componenti della piattaforma. In questa implementazione rappresenta uno scheletro; per l'implementazione @see COREP2P
 * Essa ha come ruolo specifico quello di caricare i singoli moduli che fanno parte della piattaforma istanziandoli.
 * Inoltre la classe carica la configurazione da un file locale per la configurazione del sistema.
 * Per i parametri personalizzabili vedere @see SockUtil
 */

public class CORE {
    private File configFile; // file di configurazione
    private final Logger logger = COREServiceRegistry.getLogger(CORE.class.toString()); //logger di sistema
    /**
     *  Costruttore locale vuoto.
     */
    public CORE(){
        logger.debug("Called Costructor ");
    }
    /**
     * Ritorna il file di configurazione usato. @see COREP2P
     *
     * @return null se non istanziato, altrimenti il file usato
     */
    public File getConfigFile(){
        logger.debug("Called getConfig file ");
        logger.debug("Called getConfig return ");
        return this.configFile;
    };
    /**
     * Setta il file di configurazione da usare. Usare prima dell'init. @see COREP2P
     * @param configFile
     */
    public void setConfigFile(File configFile){
        logger.trace("Called setConfigFile ");
        logger.trace("Called getConfig param " + configFile );
        this.configFile=configFile;
    };
    /**
     *  Inizializza il sistema. In questa classe è vuoto. @see COREP2P
     */
    public void init(){
        logger.trace("Called init ");
    };
}